// 定义一个promise对象
// let promise = new Promise((resolve, reject) => {
//   setTimeout(() => {
//     resolve(123)
//   }, 3000);
// })
// // 封装一个取消promise的函数,使用promise.race的特性
// function stopPromise (stopP) { // 传入promise对象
//   let proObj = {} // 空对象
//   let promise = new Promise((resolve, reject) => {
//     proObj.resolve = resolve
//     proObj.reject = reject // 创建一个新的promise对象保存这个resolve和reject函数
//   })
//   proObj.promise = Promise.race([stopP, promise]) // 让这个的promise属性是race的值
//   return proObj // 返回这个对象
// }
// let obj = stopPromise(promise) // 电泳函数返回一个对象
// obj.promise.then(res => { // 收集返回值
//   console.log(res);
// })
// setTimeout(() => {
//   obj.resolve('promise 请求被取消了')
// }, 4000);
let promise = new Promise((resolve, reject) => {
  setTimeout(() => {
    resolve(123)
  }, 2000);
})
function stopPromise (stopP) {
  let obj = {}
  let promise = new Promise((resolve, reject) => {
    obj.resolve = resolve
    obj.reject = reject
  })
  obj.promise = Promise.race([promise, stopP])
  return obj
}
let obj = stopPromise(promise)
obj.promise.then((res) => {
  console.log(res);
})
setTimeout(() => {
  obj.resolve('取消promise')
}, 3000);